查看原文
其他

市集系列|AI赋能人流量检测,可视化数据大屏让城市更安全

飞桨 百度AI 2023-03-16


开发者市集是 WAVE SUMMIT+ 峰会上由开发者们基于飞桨打造酷炫项目的展示和交流平台。开发者们脑洞大开的 Al 创意,每年都会吸引不少人驻足观看。

今年11月的 WAVE SUMMIT+2022 峰会也将展示20余个开源展示项目,覆盖智慧城市、体育、趣味互动等产业应用。在开发者说特别系列中,我们将提前揭开开发者市集的神秘面纱,向大家展示市集项目的技术细节。


今天将由飞桨开发者技术专家卜宜凡介绍“人流量可视化大屏”项目。

 项目概述 
在超大城市的管理中,如何应对人口密度增大所造成的拥挤、踩踏等事故是不可回避的问题。一旦人流密度超过场所所能容纳上限,后续的风险往往难以管控。近期,韩国梨泰院发生的踩踏事故共造成156人丧生,造成了不可挽回的损失。本项目旨在对特定区域的人流量进行智慧监控,以辅助管理者在事故发生前及时实施管控,以减少甚至彻底消除大人流量带来的风险。
本方案基于 PP-Human 行人分析工具,使用 Django+pyecharts 完成动态数据大屏的开发,完成了人流数据的采集与入库,打架、摔倒、打电话等事件的警报收集与可视化,并添加了口罩检测。对于边缘端的 CPU 部署性能优化,我们采用 OpenVINO+ONNX 的方案,并同时提供各种大小尺寸的模型,以满足在不同算力限制的设备上部署的需求。
本项目旨在实现对某一特定监控区域进出口人流量的检测与记录,而 PP-Human 为我们提供了全套的解决方案。基于 PP-Human 完善的 pipeline,我们使用 Django 和 pyecharts 开发了可视化前端,并针对推理速度进行了一定优化,同时使用 OpenVINO 以提高 pipeline 在 CPU 上的运行速度。
 功能概览 

PP-Human 流程结构图


本方案主要支持的功能如下:

在数据采集与入库过程中,根据任务性质不同,采用了两种方案:


  • 定时采集:对于每个 frame 推理都会产生的人员计数数据及视频图像等,采用定时采集入库的方式。即定时对实时推理结果进行记录并存入数据库。


  • 即时采集:对于偶发的警告事件(如摔倒、打架等),采用即时入库的方式。即一旦检测到事件发生就通过 requests 将事件发送给后端。

在数据可视化及事件警报的展示上,我们使用 Django 与 Echarts 配合完成。使用 Django 的 StreamingHttpResponse 实现视频流的传输,并用 ajax 定时更新网页上的图表与警报信息,实现动态数据大屏的基础功能。

数据即时动态更新示例


同时根据具体应用落地的差异,数据可视化大屏中预留了各种图表的位置,可以根据需求自行设计所需的数据图表进行展示,丰富大屏功能,实现个性化功能定制。
 边缘部署优化 
由于本项目所使用 pipeline 模型众多,各自算力需求也各有不同,在 CPU 条件下可能不能够在开启所有功能的条件下保持良好的性能,我们使用 OpenVINO+ONNX 的形式尽量优化 pipeline 的推理性能。所有转换后的 ONNX 模型都可以在本项目中下载。您也可以自己挑选所需的模型规格并使用 Paddle2ONNX 转换成 ONNX 模型。
🔗PP-Humanhttps://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/deploy/pipeline/docs/tutorials/PPHuman_QUICK_STARTED.md#模型下载
🔗Paddle2ONNXhttps://github.com/PaddlePaddle/Paddle2ONNX
目前已经完成 OpenVINO 替换的功能模块有:

以上均在 Intel AIBox(11th Gen Intel(R) Core(TM) i5-1135G7@ 2.40GHz)上测试所得,包括所有前后处理流程。

英特尔 AI Box


 快速开始 
🔗项目链接https://aistudio.baidu.com/aistudio/projectdetail/4694859
■ 环境配置
整个项目已经上传,可以在项目挂载的数据集中下载。
# 切换到解压目录
cd crowd_vis
# 依赖已经全部写在requirements.txt中,直接pip安装即可
# 飞桨框架没有写入,没有安装的话自行安装
pip install -r requirements.txt

■ 启动服务
>> 命令行运行
python manage.py runserver

>> 出现以下内容即启动成功
System check identified no issues (0 silenced).
August 19, 2022 - 22:53:05
Django version 3.2.15, using settings 'crowd_vis.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.


随后启动你的浏览器,输入网址链接即可访问。🔗链接http://127.0.0.1:8000/
 未来工作 
未来,我们将继续完成 PP-Human 所有模型的 OpenVINO 推理。其次,人流量数据时序相关,考虑接入机器学习的时序模型实现对人流的预警与预测,提供更多实用数据分析图表。
 WAVE SUMMIT+2022 
WAVE SUMMIT+2022将于11月30日在深圳举办,欢迎大家扫码报名!关注飞桨公众号,后台回复关键词「WAVE」进入官网社群了解更多峰会详情!
【WAVE SUMMIT+2022报名入口】

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存